Token Ring jest drugim pod
względem rozpowszechnienia protokołem warstwy
drugiej dla sieci lokalnych. Protokół ten powstał
w latach osiemdziesiątych w laboratorium IBM w
Zurichu, a jako standard został zatwierdzony przez
IEEE (Institute of Electrical and Electronic
Engineers) pod numerem 802.5.
IBM - twórca protokołu Token Ring - jako
pierwszy wprowadził do sprzedaży pracujący w tym
standardzie sprzęt w październiku 1985 roku.
Urządzenia pracowały z prędkością 4 Mb/s.
Jednocześnie IBM współpracował z Texas Instruments
nad produkcją chipsetów dla innych firm, aby i one
mogły rozwijać tę technologię dla swoich platform
sprzętowych. Już cztery lata po premierze, w 1989
roku, IBM poczynił kolejny krok na drodze rozwoju
tego protokołu, wprowadzając produkty o
czterokrotnie większej przepływności - 16 Mb/s. W
1994 roku powstał ASTRAL (Alliance for Strategic
Token-Ring Advancement and Leadership), w którego
skład weszły początkowo 3 Com, ACE, North Hills,
Bay Networks, Bytex, Cabletron, Centillion,
Chipcom, Hewlett Packard, IBM, Intel, Madge,
Olicom, Proteon, Racore, SMC, Texas Instruments,
Xircom, Xpoind oraz UB Networks. Dzięki tej
współpracy w 1997 roku ukazał się szkic standardu
802.5r, który definiował Dedykowany Token Ring
(ang. DTR - Dedicated Token Ring).
Protokół ten umożliwia obukierunkową transmisję
danych pomiędzy dwoma stacjami w pierścieniu (tzn.
stacja jest w stanie nadawać strumień danych z
szybkością 16 Mb/s, jednocześnie odbierając inny
strumień danych, także z szybkością 16 Mb/s), co
zwiększyło całkowitą przepływność do 32 Mb/s. W
tym samym czasie powstała HSTRA (ang. High Speed
Token-Ring Alliance), której założycielami były
takie firmy, jak 3Com, Bay Networks, IBM, Madge
Networks, Olicom, the UNH Interoperability Lab
oraz Xylan. Celem tej współpracy było stworzenie
standardu Token Ring dla przepływności od 100 Mb/s
do przynajmniej 1 Gb/s. I tym razem, dzięki
kooperacji gigantów, powstała kolejna wersja
standardu, 802.5t, która definiuje Token Ring o
przepływności 100 Mb/s.
Pierwsze urządzenia Token Ring dla 100 Mb/s
zostały zaprezentowane przez IBM oraz Olicom w
1998 roku, czyli jeszcze przed zatwierdzeniem
standardu przez IEEE. Kolejny szkic standardu
802.5v definiuje Gigabit Token Ring o
przepływności 1 Gb/s i w ostatnich miesiącach 2000
roku był w końcowej fazie zatwierdzania przez
IEEE.
 |
Rys. 1 |
Token Ring jest protokołem, w którym wszystkie
stacje są połączone w topologii pierścienia (rys.
1). Obowiązują tu następujące zasady:
- Każda stacja ma prawo do nadawania tylko
wtedy, gdy jest w danej chwili posiadaczem
tokena (rys. 1).
- Stacje przekazują sobie kolejno token, który
krąży po pierścieniu, dając każdej stacji w
pierścieniu prawo do nadawania (rysunki 1, 2 i
3).
- Każda stacja odbiera jedynie to, co nadaje
jeden z najbliższych sąsiadów (rys. 3).
- Stacja, po odebraniu tokena, zatrzymuje go i
w jego miejsce wstawia ramkę z danymi do
nadania.
- Po odebraniu ramki z danymi stacja powtarza
ją do następnej stacji w pierścieniu.
- Gdy ramka z danymi, po obejściu całego
pierścienia, powróci do stacji, która ją nadała,
jest usuwana i w jej miejsce jest wstawiany, a
potem przekazywany dalej, token.
 |
Rys. 2 |
 |
Rys. 3 |
Token jest ramką, dającą jej aktualnemu
posiadaczowi (stacji, która go odebrała i jeszcze
nie przesłała dalej) prawo nadawania. Budowa tej
ramki jest bardzo prosta, gdyż składa się z
jedynie trzech bajtów:
- jednego bajtu startowego;
- jednego bajtu kontroli dostępu, który
zawiera informacje o typie i priorytecie ramki
(dokładniej jest to opisane przy ramce
danych);
- jednego bajtu końcowego.
 |
Rys. 4 |
Ramka danych zaś jest znacznie bardziej
skomplikowana (rysunek 4). Składa się ona z:
- Jednego bajtu startowego - jego celem jest
rozpoznanie ramki.
- Jednego bajtu kontroli dostępu, który się
składa z:
- trzech bitów priorytetu tokena
(000 - najniższy, 111 - najwyższy), czyli
informacji o tym, które ze stacji mogą w danej
chwili zatrzymać token dla siebie; - jednego
bitu odróżniającego ramkę danych od ramki tokena
(0 - token, 1 - dane); - jednego bitu
licznika aktywnego monitora (pojęcie monitora
zostanie wyjaśnione w dalszej części); -
trzech bitów priorytetów rezerwacji (te bity
będą zmieniane z 000 - na wyżej, do 111 - przy
przekazywaniu ramki danych przez stacje o
wyższym priorytecie, w celu szybszego uzyskania
dostępu do tokena).
- Jednego bajtu kontrolnego ramki,
składającego się z:
- dwóch bitów, dzięki
którym się rozpoznaje, czy jest to ramka LLC czy
MAC (LLC=01, MAC=00 ); - dwóch bitów równych
0; - czterech bitów, dzięki którym można
zakomunikować specjalne operacje, takie jak
sprawdzenie aktywności monitorów, poszukiwanie
tokena itd.
- Sześciobajtowego MAC adresu odbiorcy
(łącznie z informacją, czy jest to adres
indywidualny czy grupowy).
- Sześciobajtowego MAC adresu nadawcy.
- 0-30 bajtów informacji routowania, używanych
przez:
- dwa bajty kontroli routowania; -
do czternastu dwubajtowych znaczników
routowania, dodawanych przy każdym przejściu
przez most (ang. bridge) przy zmianie
pierścienia; każdy znacznik składa się z
dwunastobitowego znacznika pierścienia oraz
czterech bitów numeru mostu.
- 0-n bajtów danych - gdzie n jest zależne od
stosowanej przepływności (dla 4 Mb/s - jest to 0
do 4472 bajtów, a dla 16 Mb/s jest to 0 do 17
800 bajtów).
- Czterobajtowej sekwencji kontrolnej,
sprawdzającej przez CRC (Cyclical Redundancy
Check) poprawność przesłanych danych.
- Jednobajtowej sekwencji końcowej.
- Jednobajtowego znacznika statusu ramki -
wyglądającego w następujący sposób: AcrrACrr,
gdzie:
- A (ang. Address recognized) -
początkowo równe jest 0, gdy stacja rozpozna
adres docelowy, zmienia go na 1; - C (ang.
frame Copied) - początkowo równe 0, gdy stacji w
pierścieniu uda się skopiować ramkę do stacji
docelowej; - r - zarezerwowane, zawsze równe
0. Sekwencja AC umieszczona jest w tym znaczniku
dwukrotnie, gdyż nie jest on objęty kontrolą
poprawności CRC. Dzięki temu znacznikowi nadawca
jest w stanie stwierdzić, że adresat został
znaleziony oraz odebrał dane (1100'1100 ), czy
może został znaleziony, ale nie udało się
przekazać mu danych (1000'1000 ), czy też że
adresat nie został znaleziony (0000'0000 ).
W związku z tym, że w wypadku Token Ringu mamy
do czynienia z możliwością zagubienia czy próbą
kradzieży tokena, istnieją mechanizmy mające na
celu wykrywanie oraz rozwiązywanie tego typu
problemów. W każdym pierścieniu istnieje dokładnie
jedna stacja, będąca monitorem aktywnym (ang.
active monitor). Do jej zadań należy:
- "prowadzenie" głównego zegara dla
pierścienia, do którego synchronizują się inne
stacje;
- zapewnienie prawidłowej cyrkulacji tokena
przez wstawianie 24-bitowego opóźnienia (czyli o
długości tokena), aby uniknąć sytuacji, gdy
stacja nadająca token jednocześnie go odbiera po
pełnym okrążeniu;
- zapewnienie detekcji zagubienia tokena przez
prowadzenie zegara, z maksymalnym ustawionym
czasem większym niż przesłanie przez cały
pierścień najdłuższej dozwolonej ramki;
- rozpoznanie ramki, która okrąża pierścień po
raz kolejny, i usunięcie jej.
Inną, aczkolwiek nie rozbieżną funkcję, pełni
monitor podtrzymujący (ang. standby monitor),
który zajmuje się także detekcją zagubienia tokena
oraz istnienia i aktywnej pracy monitora
aktywnego.
W ramach jednego pierścienia może pracować do
260 stacji, jednakże to górne ograniczenie może
być niższe w zależności od czynników, takich jak
przepływność, rodzaj medium transmisyjnego, a
także użycie repeaterów, konwerterów,
koncentratorów.
W pierwotnej wersji Token Ring został fizycznie
zaimplementowany za pomocą 150-omowej ekranowanej
skrętki (STP), później jednak przystosowano go do
konwencjonalnej 100-omowej nieekranowanej skrętki,
co w sposób znaczący wpłynęło na jego
rozpowszech- nienie.
Maciej
Korzeniowski |